/*
 * @lc app=leetcode.cn id=151 lang=golang
 *
 * [151] 翻转字符串里的单词
 */

// @lc code=start
func reverseWords(s string) string {
	//开头可能没有空格，最后一个单词无法处理
	//注意要在最开始，后面的i,j都依赖s的长度
	s = " " + s
	n := len(s)
	l := n - 1
	r := n

	var res strings.Builder
	for ; l >= 0; l-- {
		if s[l] == ' ' {
			sub := s[l+1 : r]
			if len(sub) != 0 {
				res.WriteString(sub)
				res.WriteString(" ")
			}
			r = l
		}
	}

	return strings.TrimSpace(res.String())
}

// @lc code=end

